package com.eltsistema.controller;

import java.text.ParseException;

import javax.servlet.http.HttpServletRequest;

import org.hibernate.Session;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.eltsistemas.adapter.Adapter;
import com.eltsistemas.adapter.Calendario;
import com.eltsistemas.dao.FornecedorDao;
import com.eltsistemas.modelo.Fornecedor;

@Controller
public class FornecedorController {
	
	@RequestMapping("/formFornecedor")
	public String formFornecedor(Model model)
	{
		model.addAttribute("estados", new Adapter().getEstados());
		model.addAttribute("dataPadrao", new Calendario().getDataAtual());
		return "cadfornecedor";
	}
		
	@RequestMapping("/adicionarFornecedor")
	public String adiciona(Fornecedor fornecedor, String data, HttpServletRequest request) throws ParseException
	{
		fornecedor.setDataCadastro(new Calendario().getData(data));
		Session session = (Session) request.getAttribute("session");
		FornecedorDao daoFornecedor = new FornecedorDao(session);	
		daoFornecedor.adiciona(fornecedor);
		return "redirect:listaFornecedor";
	}
	
	@RequestMapping("/listaFornecedor")
	public String lista(Model model, HttpServletRequest request)
	{
		Session session = (Session) request.getAttribute("session");
		FornecedorDao daoFornecedor = new FornecedorDao(session);
		model.addAttribute("fornecedores", daoFornecedor.lista());
		return "fornecedor";
	}
	
	@RequestMapping("/exibeFornecedor")
	public String exibe(Fornecedor fornecedor, Model model, HttpServletRequest request)
	{
		model.addAttribute("estados", new Adapter().getEstados());
		Session session = (Session) request.getAttribute("session");
		FornecedorDao daoFornecedor = new FornecedorDao(session);
		model.addAttribute("fornecedor", daoFornecedor.exibe(fornecedor));
		return "editfornecedor";
	}
	
	@RequestMapping("/alterarFornecedor")
	public String altera(Fornecedor fornecedor, String data, HttpServletRequest request) throws ParseException
	{
		fornecedor.setDataCadastro(new Calendario().getData(data));
		Session session = (Session) request.getAttribute("session");
		FornecedorDao daoFornecedor = new FornecedorDao(session);	
		daoFornecedor.altera(fornecedor);
		return "redirect:listaFornecedor";
	}
	
	@RequestMapping("/removeFornecedor")
	public String remover(Fornecedor fornecedor, HttpServletRequest request)
	{
		Session session = (Session) request.getAttribute("session");
		FornecedorDao daoFornecedor = new FornecedorDao(session);	
		daoFornecedor.remover(fornecedor);
		return "redirect:listaFornecedor";
	}

}
